package service

import (
	"RocFamilySystem/internal/repository"
	"RocFamilySystem/models"
)

type SysDatabaseCacheService struct {
	SysDatabaseCacheRepository *repository.SysDatabaseCacheRepository
}

// 初始化
func init() {
	registerContainer["SysDatabaseCacheService"] = &SysDatabaseCacheService{}
}

// SetRepository 设置持久层
func (service *SysDatabaseCacheService) SetRepository(sysDatabaseCacheRepository *repository.SysDatabaseCacheRepository) {
	service.SysDatabaseCacheRepository = sysDatabaseCacheRepository
}

// AddSysDatabaseCache 添加系统缓存
func (service *SysDatabaseCacheService) AddSysDatabaseCache(sysDatabaseCache *models.SysDatabaseCache) {
	service.SysDatabaseCacheRepository.InsertSysDatabaseCache(sysDatabaseCache)
}

// RemoveSysDatabaseCache 删除系统缓存
func (service *SysDatabaseCacheService) RemoveSysDatabaseCache(sysDatabaseCacheId int) {
	service.SysDatabaseCacheRepository.DeleteSysDatabaseCache(sysDatabaseCacheId)
}

// RemoveSysDatabaseCacheBatch 批量删除系统缓存
func (service *SysDatabaseCacheService) RemoveSysDatabaseCacheBatch(ids []string) {
	service.SysDatabaseCacheRepository.DeleteSysDatabaseCacheBatch(ids)
}

// ModifySysDatabaseCache 修改系统缓存
func (service *SysDatabaseCacheService) ModifySysDatabaseCache(sysDatabaseCache *models.SysDatabaseCache) {
	service.SysDatabaseCacheRepository.UpdateSysDatabaseCache(sysDatabaseCache)
}

// QuerySysDatabaseCache 查询系统缓存
func (service *SysDatabaseCacheService) QuerySysDatabaseCache(sysDatabaseCache *models.SysDatabaseCache, pageNum, pageSize int) PageInfo {
	tables, total := service.SysDatabaseCacheRepository.SelectSysDatabaseCache(sysDatabaseCache, pageNum, pageSize)
	return toPageInfo(pageNum, pageSize, total, tables)
}

// QuerySysDatabaseCacheById 通过ID查询系统缓存
func (service *SysDatabaseCacheService) QuerySysDatabaseCacheById(id int) models.SysDatabaseCache {
	return service.SysDatabaseCacheRepository.SelectSysDatabaseCacheById(id)
}
